#ifndef __DOUBLE_LINK_LIST_H__
#define __DOUBLE_LINK_LIST_H__
/*链表节点*/
typedef struct ListNode
{
	int		data;//有效数据
	struct  ListNode *prev;//指向前一个节点
	struct  ListNode *next;//指向后一个节点
}LIST_NODE;
/*链表*/
typedef struct List
{
	LIST_NODE *head;//指向链表中第一个节点
	LIST_NODE *tail;//指向链表中最后一个节点
}LIST;
/*创建空链表*/
LIST *list_create(void);
/*销毁链表*/
void list_destroy(LIST *list);
/*尾部插入*/
void list_append(LIST *list, int data);
/*指定位置插入*/
int list_insert(LIST *list, int pos, int data);
/*后向遍历*/
void list_next_print(LIST *list);
/*前向遍历*/
void list_prev_print(LIST *list);
/*删除指定节点*/
int list_erase(LIST *list, int pos);
/*随机访问（读/写）*/
int *list_at(LIST *list, int pos);
#endif
